package com.enjoyor.soa.traffic.api.ubms.service.dubbo;

import com.enjoyor.soa.traffic.api.ubms.dto.PublicDicDto;
import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

/**
 * 维护公共字典的Dubbo服务
 * @author yuankun
 * @version V1.0
 */
public interface DubboPublicDicService {
	/**
	 * 返回所有公共字典
	 * @return ResultPojo 所有公共字典
	 */
	public ResultPojo getPublicDic();
	
	/**
	 * 分页返回所有公共字典
	 * @param page 分页对象
	 * @return ResultPojo 包含公共字典的分页对象
	 */
	@SuppressWarnings("rawtypes")
	public ResultPojo getPagePublicDic(Page page);
	/**
	 * 返回所有公共字典
	 * @param orderSeq 
	 * @param typeCode 
	 * @param itemCode 
	 * @param parentCode 
	 * @param dicCode 
	 * @return ResultPojo 所有公共字典
	 */
	public ResultPojo getPublicDic(String dicCode, String parentCode, String itemCode, String typeCode, String orderSeq);
	
	/**
	 * 分页返回所有公共字典
	 * @param orderSeq 
	 * @param dicName 
	 * @param dicValue 
	 * @param typeCode 
	 * @param itemCode 
	 * @param parentCode 
	 * @param dicCode 
	 * @param page 分页对象
	 * @return ResultPojo 包含公共字典的分页对象
	 */
	@SuppressWarnings("rawtypes")
    public ResultPojo getPagePublicDic(String dicCode, String parentCode, String itemCode, String typeCode, String dicValue, String dicName, String orderSeq, Page page);
	
	/**
	 * 返回指定字典编码的公共字典
	 * @param dicCode 字典编码
	 * @return ResultPojo 公共字典
	 */
	public ResultPojo getPublicDicByDicCode(String dicCode);
	
	/**
	 * 返回指定字典编码的下级公共字典
	 * @param parentCode 字典编码
	 * @return ResultPojo 下级公共字典
	 */
	public ResultPojo getPublicDicByParentCode(String parentCode);
	
	/**
	 * 获取字典分页信息
	 * @param dicCode
	 * @param parentCode
	 * @param itemCode
	 * @param typeCode
	 * @param orderSeq
	 * @param page
	 * @return
	 */
	@SuppressWarnings("rawtypes")
    public ResultPojo getAllPagePublicDic(String dicCode, String parentCode,String itemCode, String typeCode, String orderSeq, Page page);
	
	/**
	 * 获取字典分页信息
	 * @param dicCode
	 * @param parentCode
	 * @param itemCode
	 * @param typeCode
	 * @param dicValue
	 * @param dicName
	 * @param orderSeq
	 * @param page
	 * @return
	 */
	@SuppressWarnings("rawtypes")
    public ResultPojo getPagePublicDicWithALL(String dicCode, String parentCode,String itemCode, String typeCode,String dicValue,String dicName, String orderSeq, Page page);
	
	/**
	 * 添加一条公共字典
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param publicDicDto 公共字典
	 * @return ResultPojo 添加结果
	 */
	public ResultPojo addPublicDic(String token, PublicDicDto publicDicDto);
	
	/**
	 * 修改一条公共字典
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param publicDicDto 公共字典
	 * @return ResultPojo 添加结果
	 */
	public ResultPojo editPublicDic(String token, PublicDicDto publicDicDto);
	
	/**
	 * 删除指定编码的公共字典
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param dicCode 字典编码
	 * @return ResultPojo 删除结果
	 */
	public ResultPojo removePublicDic(String token, String dicCode);
}
